package com.zy.convert.converter;

import com.zy.convert.core.AbstractConverter;
import com.zy.convert.core.ConvertContext;
import com.zy.convert.core.ConvertListContext;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;

/**
 * @author zhangyan
 * @date 2021-10-07 14:36:46
 **/
public class UserGroupConverter extends AbstractConverter<UserGroupAnn,String,String> {
    private Map<String,String> groupMap=new HashMap<>();

    public UserGroupConverter() {
        groupMap.put("1","第一组");
        groupMap.put("2","第二组");
        groupMap.put("3","第三组");
    }

    @Override
    public String convert(ConvertContext<UserGroupAnn, String> context) {
        String sourceValue = context.getSourceValue();
        if (StringUtils.isBlank(sourceValue)){
            return null;
        }
        // TODO 这里可以通过数据库去查
        return groupMap.get(sourceValue);
    }

    @Override
    public Function<ConvertContext<UserGroupAnn, String>, String> convertList(ConvertListContext<UserGroupAnn, String> convertListContext) {
        List<String> sourceValueList = convertListContext.getSourceValueList();
        // TODO 可以通过 sourceValueList（即 groupIdList），去数据库查出 groupList
        return context->{
            String sourceValue = context.getSourceValue();
            // TODO 根据 sourceValue（即 groupId）去groupList中拿出 group，并将其 name 值返回
            if (StringUtils.isBlank(sourceValue)){
                return null;
            }
            return groupMap.get(sourceValue);
        };
    }
}
